This invention relates to computer-based documentation and instruction.
A typical computer system as shown in FIG. 1 includes a computer 11 having a central processing unit 12, an input/output unit 13 and a memory 14 containing various programs used by the computer 11 such as an operating system 15 and one or more application programs 16. An end-user of the computer system communicates with the computer 11 by means of various input devices (keyboard 17, mouse 18) which transfer information to the computer 11 via input/output unit 13. The computer 11 replies to this input data, among other ways, by providing responsive output to the end-user, for example, by displaying appropriate text and images on the screen of a display monitor 19.
The operating system 15 may include a graphical user interface ("GUI") by which the operating system and any applications it may be running (e.g., a word-processing program) can communicate with a user of the computer system. A commonly used GUI implementation employs a desktop metaphor in which the screen of the monitor is regarded as a virtual desktop. The desktop is an essentially two-dimensional working template area supporting various graphical objects, including one or more display regions. As shown in FIG. 2, information generated by application programs or the operating system can be displayed on the desktop 21 within display regions 23 (e.g., windows, dialog boxes, pop-up menus, pull-down menus, drop-down lists, icons). The user can interact with the operating system, and any applications it may be running, by manipulating the cursor 24 appropriately within the display regions and by entering information with the keyboard or other input device.
To use an application program effectively, a user must know not only how to interact with the application itself, but depending on the nature of the application, the user also must possess a body of substantive knowledge relating to the subject matter to which the application pertains. For example, if the application is a software development environment, the user must be familiar with computer programming concepts and programming languages to use the application effectively.
Most computer applications provide an online help/documentation facility which aids in the use of the application. A typical online help system such as shown in FIG. 3A is accessed through a GUI in which screens of textual and graphical information are displayed to the user in a help window 30. The user can then read the screens of help text to get a better understanding of the application and its various features.
The user invokes the help system with a key sequence (e.g., pressing the F1 key on the keyboard) or by clicking the mouse on an appropriate graphical icon or menu item. In response, the help system may display a table of contents 31 listing the available help topics and subtopics which can be accessed and viewed by the user as desired. The user can browse through the table of contents 31 and click a help topic of interest to cause its corresponding body of information to be displayed in a help window. In the help window 30 shown in FIG. 3A, the user has clicked the "Programming with Microsoft Word" topic 31 to cause the corresponding help screen 32 to be displayed in window 30 as shown in FIG. 3B.
The "Programming with Microsoft Word" topic 31 shown in FIG. 3B includes several subtopics 33, each represented by a separate "link." When the user clicks the mouse on one of these links--for example, the "Error Messages" link 34--the text for the corresponding help topic is displayed automatically in the help window 30, as shown in FIG. 3C. In this example, the "Error Messages" topic 35 includes several links to further subtopics relating to specific types of error messages. As shown in FIG. 3D, when the user clicks one of these links, for example, the "Out of memory (stack space)" link 25, a new help window 36 is spawned to display the corresponding help information ("Freeing up memory") for the selected topic. The help information displayed in window 36 includes yet another link 37 for another subtopic, "active window," which when clicked by the user causes corresponding help text to appear in a pop-up dialog box 38. Virtually any level of such nested help displays is possible. The quantity and types of display regions (windows, dialog boxes, etc.) used to display help information is largely a matter of design choice based on the preferences of the help system developer.
A help system may provide "context-sensitive" help information, meaning that the help system automatically displays help information specifically relevant to the application's current task, rather than simply displaying all available help topics and forcing the user to identify and call-up the appropriate help topic manually. A context-sensitive help system decides which help information to display based on factors such as the current state of the application (e.g., the particular function being invoked by the user) and the current cursor position.
The information provided by most online help systems relates to the mechanics of using features of an application. In FIG. 4, for example, the text 42 corresponding to the chosen help topic 41, "Cancel printing," describes how to control the print feature provided by the application 40 (Microsoft Word).
A help system also may provide substantive information on how to make use of the application to achieve a desired goal. In FIG. 5A, for example, the online help system provides two types of substantive information: reference material 51 for the WordBasic programming language and practical explanations 52 of how to use WordBasic to write useful programs. The reference material 51 includes textual annotations describing the syntax and meaning of various WordBasic statements, such as the AddAddln statement, the help text for which is shown in FIG. 5B. The practical explanations 52 can include static examples of program code which the user can study to gain a better understanding of the WordBasic programming language. FIG. 5C shows an example of program code that makes use of the GetCurValues WordBasic statement.
Online help systems typically are "built" (i.e., processed into a form that facilitates run-time operation) by compiling several different help source files containing help information that has been composed by technical writers. In general, these help source files are maintained as a separate body of information apart from the application to which the help system corresponds. Consequently, when the application developers change or update the functionality of the application, the technical writers must make corresponding changes to the help source files to ensure that the online help system accurately describes the operation of the application.